Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[14.0][FIX] - l10n_it_fatturapa : get the correct preview style #2964

Closed
wants to merge 1 commit into from

Conversation

michelerusti
Copy link
Contributor

@michelerusti michelerusti commented Oct 3, 2022

Corregge #2965 per 14.0

@oca-clabot
Copy link

Hey @michelerusti, thank you for your Pull Request.

It looks like some users haven't signed our Contributor License Agreement, yet.
You can read and sign our full Contributor License Agreement here: https://odoo-community.org/page/cla
Here is a list of the users:

Appreciation of efforts,
OCA CLAbot

@matteoopenf
Copy link
Contributor

devi firmare la CLA

@@ -107,7 +107,7 @@ def get_fattura_elettronica_preview(self):
xsl_path = get_resource_path(
"l10n_it_fatturapa",
"data",
self.env.company.fatturapa_preview_style,
self.company_id.fatturapa_preview_style,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visto #2965 (comment)
self.company_id non punta alla company corrente ma a quella usate per creare l'attachment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si hai ragione, mi son confuso.
L'errore però sussiste perchè (quando multi-company) self.env.company estrae la company impostata di default nel profilo dell'utente ma la stampa deve avvenire con il template relativo all'azienda in uso.
Sbaglio?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.env.company estrae la company impostata di default nel profilo dell'utente

Quello è self.env.user.company_id.

self.env.company è la company correntemente selezionata. In teoria.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inizialmente lo pensavo anche io ma entrando in debug mi porta quella di default, confermato anche cambiando il default e vedendo i risultati diversi

Però non ho trovato documentazione ufficiale a riguardo

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I sorgenti sono qui.

https://github.com/odoo/odoo/blob/062fb69f346873fe05ebb5d429ab3535fd1df5cc/odoo/api.py#L537-L565

prende la prima tra le allowed_company_ids

se non ci sono, il default dell'utente.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@michelerusti

Dunque penso che, selezionare il template relativo alla company che ha generato l'allegato sia corretto, in quanto altrimenti la funzione di selezione template nelle impostazioni perde di utilità e può creare confusione visto che quelli delle companies diverse dalla default non sono mai accessibli.

Sono d'accordo con questo pensiero, anche perché se l'attachment è stato importato per una company X è giusto avere la preview con lo stile settato nella company X.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@michelerusti
La miglior soluzione è capire perché in quel caso non funziona self.env.user.company_id. Nella issue non ci sono istruzioni per riprodurre il problema, anche perché c'è scritto "ogni tanto". Bisogna capire quando succede esattamente, in modo da riuscire a riprodurre il problema, e poi capire perché succede.

@TonyMasciI

Sono d'accordo con questo pensiero, anche perché se l'attachment è stato importato per una company X è giusto avere la preview con lo stile settato nella company X.

Questo non è quello segnalato nella issue. Nella issue ho chiesto esplicitamente quale fosse il comportamento desiderato, ci sono due possibilità:

  • si usa il template della company selezionata come corrente dall'utente (self.env.user.company_id);
  • si usa il template della company che ha emesso la fattura a cui è legato l'attachment (self.company_id).
    Sono due comportamenti diversi. È stato scelto il primo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TheMule71
Si, effettivamente c'è stata un po' di confusione durante tutta questa PR e proverò a fare un sunto della situazione e del perchè penso che la proposta sia valida.

L'errore segnalato nella issue deriva proprio dalla confuzione che si crea utilizzando il self.env.user.company_id

L'utilizzo (non mio) di "ogni tanto" è motivato dal fatto che la gestione attuale del template crea confusione in quanto, come dicevo prima, il template di risposta è sempre quello di default utente. La descrizione di come replicare il problema mi sembra ci sia

Il problema deriva dall'assenza di un self.env.context all'interno del controller segnato nel mio commento sopra
Quindi, a meno che esista un modo che non sono riuscito a trovare di accedere al context con le allowed_company cercare di recuperare quello è sbagliato dal principio.

Quindi, andando avanti in questa PR, alla luce di queste scoperte, propongo di utilizzare self.company_id diversamente da come è stato fatto attualmente per effettivamente utilizzare dei valori ai quali possiamio accedere e, come condiviso con @TonyMasciI , migliorare l'esperienza utente in quanto a coerenza d'uso.

Potrei ricredermi e cambiare idea se ci fosse un modo di accedere alle allowed_company_ids dal controller in questione ma non sono riuscito a trovarlo.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ll modo corretto è tramite self.env.user.company_id. Quello accede agli allowed_company_ids, e fa la cosa giusta.
Su carta almeno.
Se in pratica non funziona, bisogna fixare il bug. In sostanza non va cambiato self.env.user.company_id, va fatto funzionare.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok, allora eventualmente ci sarà da sistemare quella parte di codice!

Ad ogni modo, anche una volta fixato, mi sento di portare avanti l'idea che sia meglio usare il self.company_id invece di quello delle allowed_companies anche per gli altri motivi portati sopra.
Pensi sia accettabile?

Copy link

There hasn't been any activity on this pull request in the past 4 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days.
If you want this PR to never become stale, please ask a PSC member to apply the "no stale" label.

@github-actions github-actions bot added the stale PR/Issue without recent activity, it'll be soon closed automatically. label Apr 28, 2024
@github-actions github-actions bot closed this Jun 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
14.0 stale PR/Issue without recent activity, it'll be soon closed automatically.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Preview style di fatturapa non è legato correttamente alla company
6 participants